package com;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;

public class MenuView  extends JFrame implements  ActionListener {
    //添加按钮成员
    JButton start=new JButton("开始游戏");
    JButton giveup=new JButton("退出游戏");
    JButton explain=new JButton("游戏说明");
    JButton bgm=new JButton("音乐设置");
    //添加背景图片--Menubg在image文件中
    Image bgimage=null;

    /*
     *负责人:小戴
     *功能：调用initJFrame(),initjButton()展示界面
     */
    public MenuView()  {

        initjButton();
        initJFrame();
        this.setVisible(true); }

    /*
     *负责人:小戴
     *功能: 设定按钮的大小和位置，并为按钮绑定ActionListener,
            注：用本界面类实现ActionListener接口，在本类中重写actionPerformed方法
            当按钮被点击时能够展示对应界面
     *参数：void
     *返回值：void
     */
    private void initjButton()  {
        start.setBounds(300, 100, 100, 50);
        giveup.setBounds(300,400,100,50);
        explain.setBounds(300, 200, 100, 50);
        bgm.setBounds(300, 300, 100, 50);
        //设置字体
        Font font=new Font("微软雅黑",Font.BOLD,15);
        Color color=new Color(139,82,84);
        start.setFont(font);
        explain.setFont(font);
        bgm.setFont(font);
        giveup.setFont(font);
        //按钮的默认边框
        start.setBorderPainted(true);
        start.setFocusPainted(false);

        explain.setBorderPainted(true);
        explain.setFocusPainted(false);

        bgm.setBorderPainted(true);
        bgm.setFocusPainted(false);

        giveup.setBorderPainted(true);
        giveup.setFocusPainted(false);

        //按钮的默认背景
        start.setContentAreaFilled(true);
        start.setBackground(color);
        explain.setContentAreaFilled(true);
        explain.setBackground(color);
        bgm.setContentAreaFilled(true);
        bgm.setBackground(color);
        giveup.setContentAreaFilled(true);
        giveup.setBackground(color);
        //添加监听
        start.addActionListener(this);
        giveup.addActionListener(this);
        explain.addActionListener(this);
        bgm.addActionListener(this);
        //添加按钮
        this.getContentPane().add(start);
        this.getContentPane().add(explain);
        this.getContentPane().add(giveup);
        this.getContentPane().add(bgm);
    }

    /*
     *负责人:小戴
     *功能:创建界面，设置界面的大小：603*680
     *     界面的标题，界面的显示位置
     *     初始化背景图片
     *参数:void
     *返回值：void
     */
    public void initJFrame(){
        this.setTitle("五子棋小游戏");
        this.setFont(new Font("黑体",Font.BOLD,20));
        this.setSize(690,700);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(3);
        this.setAlwaysOnTop(true);
        try {
            bgimage= ImageIO.read(new File("Image/menubg1.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        this.setLayout(null);
        JLabel jLabel=new JLabel(new ImageIcon(bgimage));
        jLabel.setBounds(0,0,this.getWidth(),this.getHeight());
        this.getContentPane().add(jLabel);
    }

    /*
     *负责人:凯子
     *功能:重写ActionListener方法,
     *     若按钮开始游戏被点击，则销毁当前界面菜单界面调用PlayGame界面
     *     若按钮退出游戏被点击，则直接执行退出语句
     *     若按钮游戏说明被点击，则销毁当前界面，调用游戏说明界面
     *参数：ActionEvent
     *返回值:void
     */
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getActionCommand().equals("开始游戏")){
            this.dispose();
            new PlayGame();
        }else if(e.getActionCommand().equals("退出游戏")){
            System.exit(0);
        }else if(e.getActionCommand().equals("游戏说明")){
            this.dispose();
            new Explaining();
        }
        else if(e.getActionCommand().equals("音乐设置")){
            this.dispose();
           // System.out.println("音乐设置");
            new MusicFrame();

        }
    }
}

